The present invention relates generally to wireless communications, and more particularly to low-density parity check code design.
In wireless communications, a transmitter typically transmits information to a receiver over a communication channel. Statistically, a communication channel can be defined as a triple consisting of an input alphabet, an output alphabet, and for each pair (i,o) of input and output elements of each alphabet, a transition probability p(i,o). The transition probability is the probability that the receiver receives the symbol o given that the transmitter transmitted symbol i over the channel.
Given a communication channel, there exists a number, called the capacity of the channel, such that reliable transmission is possible for rates arbitrarily close to the capacity, and reliable transmission is not possible for rates above the capacity.
In some circumstances, the distance separating the transmitter (i.e., source) and the receiver (i.e., destination) is large. Alternatively or additionally, the communication channel over which the source and destination communicate may be poor quality. As a result, interference may be introduced in the communications between the source and the destination, which can result in distortion of the message.
To reduce the effect of interference, the transmitter and receiver often transmit information over a communication channel using a coding scheme. The coding scheme provides redundancy so that the message can be detected (and decoded) by the receiver in the presence of interference.
The coding scheme uses codes, which are an ensemble (i.e., group) of vectors that are to be transmitted by the transmitter. The length of the vectors are assumed to be the same and is referred to as the block length of the code. If the number of vectors is K=2k, then every vector can be described with k bits. If the length of the vectors is n, then in n times use of the channel k bits have been transmitted. The code then has a rate of k/n bits per channel use, or k/n bpc.
Low-density parity check (LDPC) codes are a class of linear block codes that often approach the capacity of conventional single user communication channels. The name comes from the characteristic of their parity-check matrix, which contains only a few 1's in comparison to the amount of 0's. LDPC codes may use linear time complex algorithms for decoding.
In more detail, LDPC codes are linear codes obtained from sparse bipartite graphs. FIG. 1 shows a graph 100 of an LDPC code. The graph 100 has n left nodes (i.e., x1 to x10) (called message nodes) and m right nodes (called check nodes). The graph 100 gives rise to a linear code of block length n and dimension at least n−m in the following way: the m coordinates of the codewords are associated with the n message nodes. The codewords are those vectors (c1, . . . , cn) such that, for all check nodes, the sum of the neighboring positions among the message nodes is zero.
Thus, a binary LDPC code is a linear block code with a sparse binary parity-check matrix. This m×n parity check matrix can be represented by a bipartite graph (e.g., as shown in FIG. 1) with n variable nodes corresponding to columns (bits in the codeword) and m check nodes corresponding to rows (parity check equations). A one in a certain row and column of the parity check matrix denotes an edge between the respective check and variable node in the graph, whereas a zero indicates the absence of an edge.
An LDPC code ensemble is characterized by its variable and check degree distributions (or profiles) λ=└λ2 . . . λdv┘ and ρ=└ρ2 . . . ρdc┘, respectively, where λi(ρi) denotes the fraction of edges connected to a variable (check) node of degree i, and dv(dc) is the maximum number of edges connected to any variable (check) node. An equivalent representation of LDPC code profiles can use generating functions
            λ      ⁡              (        x        )              =                  ∑                  i          =          2                          d          v                    ⁢                        λ          i                ⁢                  x                      i            -            1                                ,          ⁢            ρ      ⁡              (        x        )              =                  ∑                  i          =          2                          d          c                    ⁢                        ρ          i                ⁢                              x                          i              -              1                                .                    
The design rate of an ensemble can be given in terms of λ(x) and ρ(x) by
  R  =            1      -              m        n              =          1      -                                    ∫            0            1                    ⁢                                    ρ              ⁡                              (                x                )                                      ⁢                          ⅆ              x                                                            ∫            0            1                    ⁢                                    λ              ⁡                              (                x                )                                      ⁢                          ⅆ              x                                          
Even while using a coding scheme, a destination may not be able to detect the transmitted message because of interference. In this case, a relay node, such as another transmitter or receiver, may be used in a system to relay the information transmitted by the source to the destination. For example, a relay can receive Y1 and send out X1 based on Y1.
Some methods have been introduced for the purpose of performance prediction of code ensembles, such as density evolution (DE) and extrinsic-mutual-information-transfer (EXIT). The design of rate compatible LDPC codes employing the conventional density evolution algorithm, however, typically considers extra constraints on the code ensembles due to the specific structure of rate compatible codes.
LDPC codes are designed for half-duplex relay networks. While the structure of LDPC codes for half-duplex relay networks are in part similar to rate compatible code structures, current design methods based on Guassian approximation of density are typically not directly applicable to the problem of half-duplex relay channel code design because of a variation of receive signal to noise ratios (SNRs) in different sub-blocks of one codeword.
Therefore, there remains a need to design a LDPC code for a half-duplex relay channel that applies to the variation of SNRs in different sub-blocks of one codeword.